// 统一的GPIO引脚定义文件
// 按照功能模块分类管理所有GPIO引脚

#ifndef __PINS_H
#define __PINS_H

// 1. LCD相关引脚
#define LCD_SCK_PIN  2    // LCD SPI时钟引脚
#define LCD_MOSI_PIN 3    // LCD SPI数据输出引脚
#define LCD_RES_PIN 19    // LCD复位引脚
#define LCD_DC_PIN 20     // LCD数据/命令控制引脚
#define LCD_CS_PIN 7      // LCD片选引脚
#define LCD_BLK_PIN 1     // LCD背光控制引脚

// LCD配置参数
#define USE_HORIZONTAL 0  // 设置横屏或者竖屏显示 0或1为竖屏 2或3为横屏
#define LCD_W 240         // LCD宽度
#define LCD_H 280         // LCD高度

// 2. 触摸屏相关引脚
#define TOUCH_RST_PIN 10  // 触摸屏复位引脚
#define TOUCH_INT_PIN 6   // 触摸屏中断引脚
#define I2C0_SDA_PIN 4    // 触摸屏I2C数据线
#define I2C0_SCL_PIN 5    // 触摸屏I2C时钟线

// 3. 音频相关引脚
#define I2S_LRC  11       // 左/右声道时钟引脚(LRC)
#define I2S_BCLK 12       // 位时钟引脚
#define I2S_DOUT 13       // 数据输出引脚

// 4. 电机控制相关引脚
#define ENA_PIN 35        // 电机使能引脚 (PWM)
#define IN1_PIN 36        // 电机方向控制引脚1
#define IN2_PIN 37        // 电机方向控制引脚2
#define MOTOR_SPEED 200   // 电机速度 (0-255)

// 5. PN532 NFC模块相关引脚 (SPI模式)
#define PN532_SCK 18      // SPI时钟引脚
#define PN532_MISO 16     // SPI数据输入引脚
#define PN532_MOSI 17     // SPI数据输出引脚
#define PN532_SS 8        // SPI片选引脚
#define PN532_RST 15      // 复位引脚

// PN532配置
#define PN532_NO_I2C 1    // 禁用I2C支持
#define PN532_NO_UART 1   // 禁用UART支持，只保留SPI模式

// 6. 其他常用配置参数
#define MAX_BUFFER_SIZE 256     // 缓冲区大小
#define TOUCH_OFFSET_Y 5         // 触摸Y轴偏移量
#define IIC_DELAY 5              // I2C延迟时间(微秒)

#endif // __PINS_H